package br.edu.eseg.brproject.model;

// Generated May 29, 2011 12:04:47 PM by Hibernate Tools 3.4.0.CR1

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.validator.NotNull;

/**
 * Utilizacaorecurso generated by hbm2java
 */
@Entity
@Table(name = "utilizacaorecurso" )
public class Utilizacaorecurso implements java.io.Serializable {

	private UtilizacaorecursoId id;
	private Tipocusto tipocusto;
	private Recurso recurso;
	private Tarefa tarefa;
	private Double custo;

	public Utilizacaorecurso() {
	}

	public Utilizacaorecurso(UtilizacaorecursoId id, Tipocusto tipocusto,
			Recurso recurso, Tarefa tarefa) {
		this.id = id;
		this.tipocusto = tipocusto;
		this.recurso = recurso;
		this.tarefa = tarefa;
	}

	public Utilizacaorecurso(UtilizacaorecursoId id, Tipocusto tipocusto,
			Recurso recurso, Tarefa tarefa, Double custo) {
		this.id = id;
		this.tipocusto = tipocusto;
		this.recurso = recurso;
		this.tarefa = tarefa;
		this.custo = custo;
	}

	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "recursoid", column = @Column(name = "recursoid", nullable = false)),
			@AttributeOverride(name = "tarefaid", column = @Column(name = "tarefaid", nullable = false)) })
	@NotNull
	public UtilizacaorecursoId getId() {
		return this.id;
	}

	public void setId(UtilizacaorecursoId id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tipocustoid", nullable = false)
	@NotNull
	public Tipocusto getTipocusto() {
		return this.tipocusto;
	}

	public void setTipocusto(Tipocusto tipocusto) {
		this.tipocusto = tipocusto;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "recursoid", nullable = false, insertable = false, updatable = false)
	@NotNull
	public Recurso getRecurso() {
		return this.recurso;
	}

	public void setRecurso(Recurso recurso) {
		this.recurso = recurso;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "tarefaid", nullable = false, insertable = false, updatable = false)
	@NotNull
	public Tarefa getTarefa() {
		return this.tarefa;
	}

	public void setTarefa(Tarefa tarefa) {
		this.tarefa = tarefa;
	}

	@Column(name = "custo", precision = 22, scale = 0)
	public Double getCusto() {
		return this.custo;
	}

	public void setCusto(Double custo) {
		this.custo = custo;
	}

}
